home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / ViePratique / ArchiFacile / ArchiFacileSetup.exe / {app} / nw.pak / Unnamed File 001022.unknown < prev    next >
Text File  |  2014-10-14  |  58KB  |  362 lines

  1. WebInspector.ConsoleViewMessage=function(target,consoleMessage,linkifier)
  2. {this._message=consoleMessage;this._linkifier=linkifier;this._target=target;this._repeatCount=1;this._dataGrids=[];this._dataGridParents=new Map();this._customFormatters={"object":this._formatParameterAsObject,"array":this._formatParameterAsArray,"node":this._formatParameterAsNode,"string":this._formatParameterAsString};}
  3. WebInspector.ConsoleViewMessage.prototype={wasShown:function()
  4. {for(var i=0;this._dataGrids&&i<this._dataGrids.length;++i){var dataGrid=this._dataGrids[i];var parentElement=this._dataGridParents.get(dataGrid)||null;dataGrid.show(parentElement);dataGrid.updateWidths();}},willHide:function()
  5. {for(var i=0;this._dataGrids&&i<this._dataGrids.length;++i){var dataGrid=this._dataGrids[i];this._dataGridParents.put(dataGrid,dataGrid.element.parentElement);dataGrid.detach();}},consoleMessage:function()
  6. {return this._message;},_formatMessage:function()
  7. {this._formattedMessage=document.createElement("span");this._formattedMessage.className="console-message-text source-code";function linkifyRequest(title)
  8. {return WebInspector.Linkifier.linkifyUsingRevealer((this.request),title,this.url);}
  9. var consoleMessage=this._message;if(!this._messageElement){if(consoleMessage.source===WebInspector.ConsoleMessage.MessageSource.ConsoleAPI){switch(consoleMessage.type){case WebInspector.ConsoleMessage.MessageType.Trace:this._messageElement=this._format(consoleMessage.parameters||["console.trace()"]);break;case WebInspector.ConsoleMessage.MessageType.Clear:this._messageElement=document.createTextNode(WebInspector.UIString("Console was cleared"));this._formattedMessage.classList.add("console-info");break;case WebInspector.ConsoleMessage.MessageType.Assert:var args=[WebInspector.UIString("Assertion failed:")];if(consoleMessage.parameters)
  10. args=args.concat(consoleMessage.parameters);this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Dir:var obj=consoleMessage.parameters?consoleMessage.parameters[0]:undefined;var args=["%O",obj];this._messageElement=this._format(args);break;case WebInspector.ConsoleMessage.MessageType.Profile:case WebInspector.ConsoleMessage.MessageType.ProfileEnd:this._messageElement=this._format([consoleMessage.messageText]);break;default:var args=consoleMessage.parameters||[consoleMessage.messageText];this._messageElement=this._format(args);}}else if(consoleMessage.source===WebInspector.ConsoleMessage.MessageSource.Network){if(consoleMessage.request){consoleMessage.stackTrace=consoleMessage.request.initiator.stackTrace;if(consoleMessage.request.initiator&&consoleMessage.request.initiator.url){consoleMessage.url=consoleMessage.request.initiator.url;consoleMessage.line=consoleMessage.request.initiator.lineNumber;}
  11. this._messageElement=document.createElement("span");if(consoleMessage.level===WebInspector.ConsoleMessage.MessageLevel.Error){this._messageElement.appendChild(document.createTextNode(consoleMessage.request.requestMethod+" "));this._messageElement.appendChild(WebInspector.Linkifier.linkifyUsingRevealer(consoleMessage.request,consoleMessage.request.url,consoleMessage.request.url));if(consoleMessage.request.failed)
  12. this._messageElement.appendChild(document.createTextNode(" "+consoleMessage.request.localizedFailDescription));else
  13. this._messageElement.appendChild(document.createTextNode(" "+consoleMessage.request.statusCode+" ("+consoleMessage.request.statusText+")"));}else{var fragment=WebInspector.linkifyStringAsFragmentWithCustomLinkifier(consoleMessage.messageText,linkifyRequest.bind(consoleMessage));this._messageElement.appendChild(fragment);}}else{var url=consoleMessage.url;if(url){var isExternal=!WebInspector.resourceForURL(url)&&!WebInspector.workspace.uiSourceCodeForURL(url);this._anchorElement=WebInspector.linkifyURLAsNode(url,url,"console-message-url",isExternal);}
  14. this._messageElement=this._format([consoleMessage.messageText]);}}else{var args=consoleMessage.parameters||[consoleMessage.messageText];this._messageElement=this._format(args);}}
  15. if(consoleMessage.source!==WebInspector.ConsoleMessage.MessageSource.Network||consoleMessage.request){var callFrame=this._callFrameAnchorFromStackTrace(consoleMessage.stackTrace);if(callFrame)
  16. this._anchorElement=this._linkifyCallFrame(callFrame);else if(consoleMessage.url&&consoleMessage.url!=="undefined")
  17. this._anchorElement=this._linkifyLocation(consoleMessage.url,consoleMessage.line,consoleMessage.column);}
  18. this._formattedMessage.appendChild(this._messageElement);if(this._anchorElement){this._formattedMessage.appendChild(document.createTextNode(" "));this._formattedMessage.appendChild(this._anchorElement);}
  19. var dumpStackTrace=!!consoleMessage.stackTrace&&consoleMessage.stackTrace.length&&(consoleMessage.source===WebInspector.ConsoleMessage.MessageSource.Network||consoleMessage.level===WebInspector.ConsoleMessage.MessageLevel.Error||consoleMessage.type===WebInspector.ConsoleMessage.MessageType.Trace);if(dumpStackTrace){var ol=document.createElement("ol");ol.className="outline-disclosure";var treeOutline=new TreeOutline(ol);var content=this._formattedMessage;var root=new TreeElement(content,null,true);content.treeElementForTest=root;treeOutline.appendChild(root);if(consoleMessage.type===WebInspector.ConsoleMessage.MessageType.Trace)
  20. root.expand();this._populateStackTraceTreeElement(root);this._formattedMessage=ol;}},_formattedMessageText:function()
  21. {this.formattedMessage();return this._messageElement.textContent;},formattedMessage:function()
  22. {if(!this._formattedMessage)
  23. this._formatMessage();return this._formattedMessage;},_linkifyLocation:function(url,lineNumber,columnNumber)
  24. {console.assert(this._linkifier);if(!this._linkifier)
  25. return null;lineNumber=lineNumber?lineNumber-1:0;columnNumber=columnNumber?columnNumber-1:0;if(this._message.source===WebInspector.ConsoleMessage.MessageSource.CSS){var headerIds=WebInspector.cssModel.styleSheetIdsForURL(url);var cssLocation=new WebInspector.CSSLocation(url,lineNumber,columnNumber);return this._linkifier.linkifyCSSLocation(headerIds[0]||null,cssLocation,"console-message-url");}
  26. return this._linkifier.linkifyLocation(url,lineNumber,columnNumber,"console-message-url");},_linkifyCallFrame:function(callFrame)
  27. {console.assert(this._linkifier);if(!this._linkifier)
  28. return null;var lineNumber=callFrame.lineNumber?callFrame.lineNumber-1:0;var columnNumber=callFrame.columnNumber?callFrame.columnNumber-1:0;var rawLocation=new WebInspector.DebuggerModel.Location(callFrame.scriptId,lineNumber,columnNumber);return this._linkifier.linkifyRawLocation(rawLocation,"console-message-url");},_callFrameAnchorFromStackTrace:function(stackTrace)
  29. {if(!stackTrace||!stackTrace.length)
  30. return null;var callFrame=stackTrace[0].scriptId?stackTrace[0]:null;if(!WebInspector.experimentsSettings.frameworksDebuggingSupport.isEnabled())
  31. return callFrame;if(!WebInspector.settings.skipStackFramesSwitch.get())
  32. return callFrame;var regex=WebInspector.settings.skipStackFramesPattern.asRegExp();if(!regex)
  33. return callFrame;for(var i=0;i<stackTrace.length;++i){var script=this._target.debuggerModel.scriptForId(stackTrace[i].scriptId);if(!script||!regex.test(script.sourceURL))
  34. return stackTrace[i].scriptId?stackTrace[i]:null;}
  35. return callFrame;},isErrorOrWarning:function()
  36. {return(this._message.level===WebInspector.ConsoleMessage.MessageLevel.Warning||this._message.level===WebInspector.ConsoleMessage.MessageLevel.Error);},_format:function(parameters)
  37. {var formattedResult=document.createElement("span");if(!parameters.length)
  38. return formattedResult;for(var i=0;i<parameters.length;++i){if(parameters[i]instanceof WebInspector.RemoteObject)
  39. continue;if(typeof parameters[i]==="object")
  40. parameters[i]=WebInspector.RemoteObject.fromPayload(parameters[i],this._target);else
  41. parameters[i]=WebInspector.RemoteObject.fromPrimitiveValue(parameters[i],this._target);}
  42. var shouldFormatMessage=WebInspector.RemoteObject.type(parameters[0])==="string"&&this._message.type!==WebInspector.ConsoleMessage.MessageType.Result;if(shouldFormatMessage){var result=this._formatWithSubstitutionString(parameters[0].description,parameters.slice(1),formattedResult);parameters=result.unusedSubstitutions;if(parameters.length)
  43. formattedResult.appendChild(document.createTextNode(" "));}
  44. if(this._message.type===WebInspector.ConsoleMessage.MessageType.Table){formattedResult.appendChild(this._formatParameterAsTable(parameters));return formattedResult;}
  45. for(var i=0;i<parameters.length;++i){if(shouldFormatMessage&¶meters[i].type==="string")
  46. formattedResult.appendChild(WebInspector.linkifyStringAsFragment(parameters[i].description));else
  47. formattedResult.appendChild(this._formatParameter(parameters[i],false,true));if(i<parameters.length-1)
  48. formattedResult.appendChild(document.createTextNode(" "));}
  49. return formattedResult;},_formatParameter:function(output,forceObjectFormat,includePreview)
  50. {var type;if(forceObjectFormat)
  51. type="object";else if(output instanceof WebInspector.RemoteObject)
  52. type=output.subtype||output.type;else
  53. type=typeof output;var formatter=this._customFormatters[type];if(!formatter){formatter=this._formatParameterAsValue;output=output.description;}
  54. var span=document.createElement("span");span.className="console-formatted-"+type+" source-code";formatter.call(this,output,span,includePreview);return span;},_formatParameterAsValue:function(val,elem)
  55. {elem.appendChild(document.createTextNode(val));},_formatParameterAsObject:function(obj,elem,includePreview)
  56. {this._formatParameterAsArrayOrObject(obj,obj.description||"",elem,includePreview);},_formatParameterAsArrayOrObject:function(obj,description,elem,includePreview)
  57. {var titleElement=document.createElement("span");if(description)
  58. titleElement.createTextChild(description);if(includePreview&&obj.preview){titleElement.classList.add("console-object-preview");var lossless=this._appendObjectPreview(obj,description,titleElement);if(lossless){elem.appendChild(titleElement);return;}}
  59. var section=new WebInspector.ObjectPropertiesSection(obj,titleElement);section.enableContextMenu();elem.appendChild(section.element);var note=section.titleElement.createChild("span","object-info-state-note");note.title=WebInspector.UIString("Object state below is captured upon first expansion");},_appendObjectPreview:function(obj,description,titleElement)
  60. {var preview=obj.preview;var isArray=obj.subtype==="array";if(description)
  61. titleElement.createTextChild(" ");titleElement.createTextChild(isArray?"[":"{");for(var i=0;i<preview.properties.length;++i){if(i>0)
  62. titleElement.createTextChild(", ");var property=preview.properties[i];var name=property.name;if(!isArray||name!=i){if(/^\s|\s$|^$|\n/.test(name))
  63. name="\""+name.replace(/\n/g,"\u21B5")+"\"";titleElement.createChild("span","name").textContent=name;titleElement.createTextChild(": ");}
  64. titleElement.appendChild(this._renderPropertyPreviewOrAccessor(obj,[property]));}
  65. if(preview.overflow)
  66. titleElement.createChild("span").textContent="\u2026";titleElement.createTextChild(isArray?"]":"}");return preview.lossless;},_renderPropertyPreviewOrAccessor:function(object,propertyPath)
  67. {var property=propertyPath.peekLast();if(property.type==="accessor")
  68. return this._formatAsAccessorProperty(object,propertyPath.select("name"),false);return this._renderPropertyPreview(property.type,(property.subtype),property.value);},_renderPropertyPreview:function(type,subtype,description)
  69. {var span=document.createElement("span");span.className="console-formatted-"+type;if(type==="function"){span.textContent="function";return span;}
  70. if(type==="object"&&subtype==="regexp"){span.classList.add("console-formatted-string");span.textContent=description;return span;}
  71. if(type==="object"&&subtype==="node"&&description){span.classList.add("console-formatted-preview-node");WebInspector.DOMPresentationUtils.createSpansForNodeTitle(span,description);return span;}
  72. if(type==="string"){span.textContent="\""+description.replace(/\n/g,"\u21B5")+"\"";return span;}
  73. span.textContent=description;return span;},_formatParameterAsNode:function(object,elem)
  74. {function printNode(nodeId)
  75. {if(!nodeId){this._formatParameterAsObject(object,elem,false);return;}
  76. var node=WebInspector.domModel.nodeForId(nodeId);var renderer=WebInspector.moduleManager.instance(WebInspector.Renderer,node);if(renderer)
  77. elem.appendChild(renderer.render(node));else
  78. console.error("No renderer for node found");}
  79. object.pushNodeToFrontend(printNode.bind(this));},useArrayPreviewInFormatter:function(array)
  80. {return this._message.type!==WebInspector.ConsoleMessage.MessageType.DirXML&&!!array.preview;},_formatParameterAsArray:function(array,elem)
  81. {if(this.useArrayPreviewInFormatter(array)){this._formatParameterAsArrayOrObject(array,"",elem,true);return;}
  82. const maxFlatArrayLength=100;if(this._message.isOutdated||array.arrayLength()>maxFlatArrayLength)
  83. this._formatParameterAsObject(array,elem,false);else
  84. array.getOwnProperties(this._printArray.bind(this,array,elem));},_formatParameterAsTable:function(parameters)
  85. {var element=document.createElement("span");var table=parameters[0];if(!table||!table.preview)
  86. return element;var columnNames=[];var preview=table.preview;var rows=[];for(var i=0;i<preview.properties.length;++i){var rowProperty=preview.properties[i];var rowPreview=rowProperty.valuePreview;if(!rowPreview)
  87. continue;var rowValue={};const maxColumnsToRender=20;for(var j=0;j<rowPreview.properties.length;++j){var cellProperty=rowPreview.properties[j];var columnRendered=columnNames.indexOf(cellProperty.name)!=-1;if(!columnRendered){if(columnNames.length===maxColumnsToRender)
  88. continue;columnRendered=true;columnNames.push(cellProperty.name);}
  89. if(columnRendered){var cellElement=this._renderPropertyPreviewOrAccessor(table,[rowProperty,cellProperty]);cellElement.classList.add("nowrap-below");rowValue[cellProperty.name]=cellElement;}}
  90. rows.push([rowProperty.name,rowValue]);}
  91. var flatValues=[];for(var i=0;i<rows.length;++i){var rowName=rows[i][0];var rowValue=rows[i][1];flatValues.push(rowName);for(var j=0;j<columnNames.length;++j)
  92. flatValues.push(rowValue[columnNames[j]]);}
  93. if(!flatValues.length)
  94. return element;columnNames.unshift(WebInspector.UIString("(index)"));var dataGrid=WebInspector.DataGrid.createSortableDataGrid(columnNames,flatValues);dataGrid.renderInline();this._dataGrids.push(dataGrid);this._dataGridParents.put(dataGrid,element);return element;},_formatParameterAsString:function(output,elem)
  95. {var span=document.createElement("span");span.className="console-formatted-string source-code";span.appendChild(WebInspector.linkifyStringAsFragment(output.description));elem.classList.remove("console-formatted-string");elem.appendChild(document.createTextNode("\""));elem.appendChild(span);elem.appendChild(document.createTextNode("\""));},_printArray:function(array,elem,properties)
  96. {if(!properties)
  97. return;var elements=[];for(var i=0;i<properties.length;++i){var property=properties[i];var name=property.name;if(isNaN(name))
  98. continue;if(property.getter)
  99. elements[name]=this._formatAsAccessorProperty(array,[name],true);else if(property.value)
  100. elements[name]=this._formatAsArrayEntry(property.value);}
  101. elem.appendChild(document.createTextNode("["));var lastNonEmptyIndex=-1;function appendUndefined(elem,index)
  102. {if(index-lastNonEmptyIndex<=1)
  103. return;var span=elem.createChild("span","console-formatted-undefined");span.textContent=WebInspector.UIString("undefined ├ù %d",index-lastNonEmptyIndex-1);}
  104. var length=array.arrayLength();for(var i=0;i<length;++i){var element=elements[i];if(!element)
  105. continue;if(i-lastNonEmptyIndex>1){appendUndefined(elem,i);elem.appendChild(document.createTextNode(", "));}
  106. elem.appendChild(element);lastNonEmptyIndex=i;if(i<length-1)
  107. elem.appendChild(document.createTextNode(", "));}
  108. appendUndefined(elem,length);elem.appendChild(document.createTextNode("]"));},_formatAsArrayEntry:function(output)
  109. {return this._formatParameter(output,output.subtype==="array",false);},_formatAsAccessorProperty:function(object,propertyPath,isArrayEntry)
  110. {var rootElement=WebInspector.ObjectPropertyTreeElement.createRemoteObjectAccessorPropertySpan(object,propertyPath,onInvokeGetterClick.bind(this));function onInvokeGetterClick(result,wasThrown)
  111. {if(!result)
  112. return;rootElement.removeChildren();if(wasThrown){var element=rootElement.createChild("span","error-message");element.textContent=WebInspector.UIString("<exception>");element.title=result.description;}else if(isArrayEntry){rootElement.appendChild(this._formatAsArrayEntry(result));}else{const maxLength=100;var type=result.type;var subtype=result.subtype;var description="";if(type!=="function"&&result.description){if(type==="string"||subtype==="regexp")
  113. description=result.description.trimMiddle(maxLength);else
  114. description=result.description.trimEnd(maxLength);}
  115. rootElement.appendChild(this._renderPropertyPreview(type,subtype,description));}}
  116. return rootElement;},_formatWithSubstitutionString:function(format,parameters,formattedResult)
  117. {var formatters={};function parameterFormatter(force,obj)
  118. {return this._formatParameter(obj,force,false);}
  119. function stringFormatter(obj)
  120. {return obj.description;}
  121. function floatFormatter(obj)
  122. {if(typeof obj.value!=="number")
  123. return"NaN";return obj.value;}
  124. function integerFormatter(obj)
  125. {if(typeof obj.value!=="number")
  126. return"NaN";return Math.floor(obj.value);}
  127. function bypassFormatter(obj)
  128. {return(obj instanceof Node)?obj:"";}
  129. var currentStyle=null;function styleFormatter(obj)
  130. {currentStyle={};var buffer=document.createElement("span");buffer.setAttribute("style",obj.description);for(var i=0;i<buffer.style.length;i++){var property=buffer.style[i];if(isWhitelistedProperty(property))
  131. currentStyle[property]=buffer.style[property];}}
  132. function isWhitelistedProperty(property)
  133. {var prefixes=["background","border","color","font","line","margin","padding","text","-webkit-background","-webkit-border","-webkit-font","-webkit-margin","-webkit-padding","-webkit-text"];for(var i=0;i<prefixes.length;i++){if(property.startsWith(prefixes[i]))
  134. return true;}
  135. return false;}
  136. formatters.o=parameterFormatter.bind(this,false);formatters.s=stringFormatter;formatters.f=floatFormatter;formatters.i=integerFormatter;formatters.d=integerFormatter;formatters.c=styleFormatter;formatters.O=parameterFormatter.bind(this,true);formatters._=bypassFormatter;function append(a,b)
  137. {if(b instanceof Node)
  138. a.appendChild(b);else if(typeof b!=="undefined"){var toAppend=WebInspector.linkifyStringAsFragment(String(b));if(currentStyle){var wrapper=document.createElement('span');for(var key in currentStyle)
  139. wrapper.style[key]=currentStyle[key];wrapper.appendChild(toAppend);toAppend=wrapper;}
  140. a.appendChild(toAppend);}
  141. return a;}
  142. return String.format(format,parameters,formatters,formattedResult,append);},clearHighlight:function()
  143. {if(!this._formattedMessage)
  144. return;var highlightedMessage=this._formattedMessage;delete this._formattedMessage;delete this._anchorElement;delete this._messageElement;this._formatMessage();this._element.replaceChild(this._formattedMessage,highlightedMessage);},highlightSearchResults:function(regexObject)
  145. {if(!this._formattedMessage)
  146. return;this._highlightSearchResultsInElement(regexObject,this._messageElement);if(this._anchorElement)
  147. this._highlightSearchResultsInElement(regexObject,this._anchorElement);this._element.scrollIntoViewIfNeeded();},_highlightSearchResultsInElement:function(regexObject,element)
  148. {regexObject.lastIndex=0;var text=element.textContent;var match=regexObject.exec(text);var matchRanges=[];while(match){matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(text);}
  149. WebInspector.highlightSearchResults(element,matchRanges);},matchesRegex:function(regexObject)
  150. {regexObject.lastIndex=0;return regexObject.test(this._formattedMessageText())||(!!this._anchorElement&®exObject.test(this._anchorElement.textContent));},updateTimestamp:function(show)
  151. {if(!this._element)
  152. return;if(show&&!this.timestampElement){this.timestampElement=this._element.createChild("span","console-timestamp");this.timestampElement.textContent=(new Date(this._message.timestamp)).toConsoleTime();var afterRepeatCountChild=this.repeatCountElement&&this.repeatCountElement.nextSibling;this._element.insertBefore(this.timestampElement,afterRepeatCountChild||this._element.firstChild);return;}
  153. if(!show&&this.timestampElement){this.timestampElement.remove();delete this.timestampElement;}},toMessageElement:function()
  154. {if(this._element)
  155. return this._element;var element=document.createElement("div");element.message=this;element.className="console-message";this._element=element;switch(this._message.level){case WebInspector.ConsoleMessage.MessageLevel.Log:element.classList.add("console-log-level");break;case WebInspector.ConsoleMessage.MessageLevel.Debug:element.classList.add("console-debug-level");break;case WebInspector.ConsoleMessage.MessageLevel.Warning:element.classList.add("console-warning-level");break;case WebInspector.ConsoleMessage.MessageLevel.Error:element.classList.add("console-error-level");break;case WebInspector.ConsoleMessage.MessageLevel.Info:element.classList.add("console-info-level");break;}
  156. if(this._message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||this._message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
  157. element.classList.add("console-group-title");element.appendChild(this.formattedMessage());if(this._repeatCount>1)
  158. this._showRepeatCountElement();this.updateTimestamp(WebInspector.settings.consoleTimestampsEnabled.get());return element;},_populateStackTraceTreeElement:function(parentTreeElement)
  159. {for(var i=0;i<this._message.stackTrace.length;i++){var frame=this._message.stackTrace[i];var content=document.createElementWithClass("div","stacktrace-entry");var messageTextElement=document.createElement("span");messageTextElement.className="console-message-text source-code";var functionName=frame.functionName||WebInspector.UIString("(anonymous function)");messageTextElement.appendChild(document.createTextNode(functionName));content.appendChild(messageTextElement);if(frame.scriptId){content.appendChild(document.createTextNode(" "));var urlElement=this._linkifyCallFrame(frame);if(!urlElement)
  160. continue;content.appendChild(urlElement);}
  161. var treeElement=new TreeElement(content);parentTreeElement.appendChild(treeElement);}},incrementRepeatCount:function()
  162. {this._repeatCount++;this._showRepeatCountElement();},_showRepeatCountElement:function()
  163. {if(!this._element)
  164. return;if(!this.repeatCountElement){this.repeatCountElement=document.createElement("span");this.repeatCountElement.className="bubble";this._element.insertBefore(this.repeatCountElement,this._element.firstChild);this._element.classList.add("repeated-message");}
  165. this.repeatCountElement.textContent=this._repeatCount;},toString:function()
  166. {var sourceString;switch(this._message.source){case WebInspector.ConsoleMessage.MessageSource.XML:sourceString="XML";break;case WebInspector.ConsoleMessage.MessageSource.JS:sourceString="JavaScript";break;case WebInspector.ConsoleMessage.MessageSource.Network:sourceString="Network";break;case WebInspector.ConsoleMessage.MessageSource.ConsoleAPI:sourceString="ConsoleAPI";break;case WebInspector.ConsoleMessage.MessageSource.Storage:sourceString="Storage";break;case WebInspector.ConsoleMessage.MessageSource.AppCache:sourceString="AppCache";break;case WebInspector.ConsoleMessage.MessageSource.Rendering:sourceString="Rendering";break;case WebInspector.ConsoleMessage.MessageSource.CSS:sourceString="CSS";break;case WebInspector.ConsoleMessage.MessageSource.Security:sourceString="Security";break;case WebInspector.ConsoleMessage.MessageSource.Other:sourceString="Other";break;}
  167. var typeString;switch(this._message.type){case WebInspector.ConsoleMessage.MessageType.Log:typeString="Log";break;case WebInspector.ConsoleMessage.MessageType.Dir:typeString="Dir";break;case WebInspector.ConsoleMessage.MessageType.DirXML:typeString="Dir XML";break;case WebInspector.ConsoleMessage.MessageType.Trace:typeString="Trace";break;case WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed:case WebInspector.ConsoleMessage.MessageType.StartGroup:typeString="Start Group";break;case WebInspector.ConsoleMessage.MessageType.EndGroup:typeString="End Group";break;case WebInspector.ConsoleMessage.MessageType.Assert:typeString="Assert";break;case WebInspector.ConsoleMessage.MessageType.Result:typeString="Result";break;case WebInspector.ConsoleMessage.MessageType.Profile:case WebInspector.ConsoleMessage.MessageType.ProfileEnd:typeString="Profiling";break;}
  168. var levelString;switch(this._message.level){case WebInspector.ConsoleMessage.MessageLevel.Log:levelString="Log";break;case WebInspector.ConsoleMessage.MessageLevel.Warning:levelString="Warning";break;case WebInspector.ConsoleMessage.MessageLevel.Debug:levelString="Debug";break;case WebInspector.ConsoleMessage.MessageLevel.Error:levelString="Error";break;case WebInspector.ConsoleMessage.MessageLevel.Info:levelString="Info";break;}
  169. return sourceString+" "+typeString+" "+levelString+": "+this.formattedMessage().textContent+"\n"+this._message.url+" line "+this._message.line;},get text()
  170. {return this._message.messageText;}};WebInspector.ConsoleView=function(hideContextSelector)
  171. {WebInspector.VBox.call(this);this.registerRequiredCSS("filter.css");this._searchableView=new WebInspector.SearchableView(this);this._searchableView.setMinimalSearchQuerySize(0);this._searchableView.show(this.element);this._contentsElement=this._searchableView.element;this._contentsElement.classList.add("console-view");this._visibleViewMessages=[];this._urlToMessageCount={};this._clearConsoleButton=new WebInspector.StatusBarButton(WebInspector.UIString("Clear console log."),"clear-status-bar-item");this._clearConsoleButton.addEventListener("click",this._requestClearMessages,this);this._executionContextSelector=new WebInspector.StatusBarComboBox(this._executionContextChanged.bind(this),"console-context");this._topLevelOptionByContextListId={};this._subOptionsByContextListId={};this._filter=new WebInspector.ConsoleViewFilter(this);this._filter.addEventListener(WebInspector.ConsoleViewFilter.Events.FilterChanged,this._updateMessageList.bind(this));if(hideContextSelector)
  172. this._executionContextSelector.element.classList.add("hidden");this._filterBar=new WebInspector.FilterBar();var statusBarElement=this._contentsElement.createChild("div","console-status-bar");statusBarElement.appendChild(this._clearConsoleButton.element);statusBarElement.appendChild(this._filterBar.filterButton().element);statusBarElement.appendChild(this._executionContextSelector.element);this._filtersContainer=this._contentsElement.createChild("div","console-filters-header hidden");this._filtersContainer.appendChild(this._filterBar.filtersElement());this._filterBar.addEventListener(WebInspector.FilterBar.Events.FiltersToggled,this._onFiltersToggled,this);this._filterBar.setName("consoleView");this._filter.addFilters(this._filterBar);this.messagesElement=document.createElement("div");this.messagesElement.id="console-messages";this.messagesElement.className="monospace";this.messagesElement.addEventListener("click",this._messagesClicked.bind(this),true);this._contentsElement.appendChild(this.messagesElement);this._scrolledToBottom=true;this.promptElement=document.createElement("div");this.promptElement.id="console-prompt";this.promptElement.className="source-code";this.promptElement.spellcheck=false;this.messagesElement.appendChild(this.promptElement);this.messagesElement.appendChild(document.createElement("br"));this.topGroup=new WebInspector.ConsoleGroup(null);this.messagesElement.insertBefore(this.topGroup.element,this.promptElement);this.currentGroup=this.topGroup;this._registerShortcuts();this.registerRequiredCSS("textPrompt.css");this.messagesElement.addEventListener("contextmenu",this._handleContextMenuEvent.bind(this),false);WebInspector.settings.monitoringXHREnabled.addChangeListener(this._monitoringXHREnabledSettingChanged.bind(this));this._linkifier=new WebInspector.Linkifier();this._messageToViewMessage=new Map();this._consoleMessages=[];this.prompt=new WebInspector.TextPromptWithHistory(this._completionsForTextPrompt.bind(this));this.prompt.setSuggestBoxEnabled("generic-suggest");this.prompt.renderAsBlock();this.prompt.attach(this.promptElement);this.prompt.proxyElement.addEventListener("keydown",this._promptKeyDown.bind(this),false);this.prompt.setHistoryData(WebInspector.settings.consoleHistory.get());WebInspector.targetManager.targets().forEach(this._targetAdded,this);WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Events.TargetAdded,this._onTargetAdded,this);this._filterStatusMessageElement=document.createElement("div");this._filterStatusMessageElement.classList.add("console-message");this._filterStatusTextElement=this._filterStatusMessageElement.createChild("span","console-info");this._filterStatusMessageElement.createTextChild(" ");var resetFiltersLink=this._filterStatusMessageElement.createChild("span","console-info node-link");resetFiltersLink.textContent=WebInspector.UIString("Show all messages.");resetFiltersLink.addEventListener("click",this._filter.reset.bind(this._filter),true);this.messagesElement.insertBefore(this._filterStatusMessageElement,this.topGroup.element);this._updateFilterStatus();WebInspector.settings.consoleTimestampsEnabled.addChangeListener(this._consoleTimestampsSettingChanged,this);}
  173. WebInspector.ConsoleView.prototype={_onTargetAdded:function(event)
  174. {this._targetAdded((event.data));},_targetAdded:function(target)
  175. {target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.MessageAdded,this._onConsoleMessageAdded.bind(this,target),this);target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.ConsoleCleared,this._consoleCleared,this);target.consoleModel.addEventListener(WebInspector.ConsoleModel.Events.CommandEvaluated,this._commandEvaluated,this);target.consoleModel.messages.forEach(this._consoleMessageAdded.bind(this,target));function loadContextList(contextList)
  176. {this._addExecutionContextList(target,contextList);this._contextListChanged(target,contextList);}
  177. target.runtimeModel.contextLists().forEach(loadContextList,this);target.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.ExecutionContextListAdded,this._executionContextListAdded.bind(this,target));target.runtimeModel.addEventListener(WebInspector.RuntimeModel.Events.ExecutionContextListRemoved,this._executionContextListRemoved,this);},_consoleTimestampsSettingChanged:function(event)
  178. {var enabled=(event.data);this._messageToViewMessage.values().forEach(function(viewMessage){viewMessage.updateTimestamp(enabled);})},defaultFocusedElement:function()
  179. {return this.promptElement},_onFiltersToggled:function(event)
  180. {var toggled=(event.data);this._filtersContainer.classList.toggle("hidden",!toggled);},_executionContextListAdded:function(target,event)
  181. {var contextList=(event.data);this._addExecutionContextList(target,contextList);},_addExecutionContextList:function(target,contextList)
  182. {var maxLength=50;var topLevelOption=this._executionContextSelector.createOption(contextList.displayName().trimMiddle(maxLength),contextList.url());topLevelOption._executionContext=null;topLevelOption._target=target;this._topLevelOptionByContextListId[contextList.id()]=topLevelOption;this._subOptionsByContextListId[contextList.id()]=[];contextList.addEventListener(WebInspector.ExecutionContextList.EventTypes.Reset,this._contextListReset,this);contextList.addEventListener(WebInspector.ExecutionContextList.EventTypes.ContextAdded,this._contextListChanged.bind(this,target,contextList));},_executionContextListRemoved:function(event)
  183. {var contextList=(event.data);this._removeSubOptions(contextList.id());var topLevelOption=this._topLevelOptionByContextListId[contextList.id()];this._executionContextSelector.removeOption(topLevelOption);delete this._topLevelOptionByContextListId[contextList.id()];delete this._subOptionsByContextListId[contextList.id()];this._executionContextChanged();},_removeSubOptions:function(contextListId)
  184. {var selectedOptionRemoved=false;var subOptions=this._subOptionsByContextListId[contextListId];for(var i=0;i<subOptions.length;++i){selectedOptionRemoved|=this._executionContextSelector.selectedOption()===subOptions[i];this._executionContextSelector.removeOption(subOptions[i]);}
  185. this._subOptionsByContextListId[contextListId]=[];return selectedOptionRemoved;},_executionContextChanged:function()
  186. {var runtimeModel=this._currentTarget().runtimeModel;var runtimeContext=runtimeModel.currentExecutionContext();if(this._currentExecutionContext()!==runtimeContext)
  187. runtimeModel.setCurrentExecutionContext(this._currentExecutionContext());this.prompt.clearAutoComplete(true);},_currentExecutionContext:function()
  188. {var option=this._executionContextSelector.selectedOption();return option?option._executionContext:null;},_currentTarget:function()
  189. {var option=this._executionContextSelector.selectedOption();return option?option._target:WebInspector.targetManager.mainTarget();},_completionsForTextPrompt:function(proxyElement,wordRange,force,completionsReadyCallback)
  190. {this._currentTarget().runtimeModel.completionsForTextPrompt(proxyElement,wordRange,force,completionsReadyCallback);},_contextListReset:function(event)
  191. {var contextList=(event.data);var option=this._topLevelOptionByContextListId[contextList.id()];var maxLength=50;option.text=contextList.displayName().trimMiddle(maxLength);option.title=contextList.url();var selectedRemoved=this._removeSubOptions(contextList.id());if(selectedRemoved){this._executionContextSelector.select(option);this._executionContextChanged();}},_contextListChanged:function(target,contextList)
  192. {var currentExecutionContext=this._currentExecutionContext();var shouldSelectOption=this._removeSubOptions(contextList.id());var topLevelOption=this._topLevelOptionByContextListId[contextList.id()];var nextTopLevelOption=topLevelOption.nextSibling;var subOptions=this._subOptionsByContextListId[contextList.id()];var executionContexts=contextList.executionContexts();for(var i=0;i<executionContexts.length;++i){if(executionContexts[i].isMainWorldContext){topLevelOption._executionContext=executionContexts[i];continue;}
  193. var subOption=document.createElement("option");subOption.text="\u00a0\u00a0\u00a0\u00a0"+executionContexts[i].name;subOption._executionContext=executionContexts[i];subOption._target=target;this._executionContextSelector.selectElement().insertBefore(subOption,nextTopLevelOption);subOptions.push(subOption);if(shouldSelectOption&&executionContexts[i]===currentExecutionContext){this._executionContextSelector.select(subOption);shouldSelectOption=false;}}
  194. if(shouldSelectOption)
  195. this._executionContextSelector.select(topLevelOption);this._executionContextChanged();},willHide:function()
  196. {this.prompt.hideSuggestBox();this.prompt.clearAutoComplete(true);},wasShown:function()
  197. {if(!this.prompt.isCaretInsidePrompt())
  198. this.prompt.moveCaretToEndOfPrompt();},focus:function()
  199. {if(this.promptElement===WebInspector.currentFocusElement())
  200. return;WebInspector.setCurrentFocusElement(this.promptElement);this.prompt.moveCaretToEndOfPrompt();},storeScrollPositions:function()
  201. {WebInspector.View.prototype.storeScrollPositions.call(this);this._scrolledToBottom=this.messagesElement.isScrolledToBottom();},restoreScrollPositions:function()
  202. {if(this._scrolledToBottom)
  203. this._immediatelyScrollIntoView();else
  204. WebInspector.View.prototype.restoreScrollPositions.call(this);},onResize:function()
  205. {this.prompt.hideSuggestBox();this.restoreScrollPositions();},_isScrollIntoViewScheduled:function()
  206. {return!!this._scrollIntoViewTimer;},_scheduleScrollIntoView:function()
  207. {if(this._scrollIntoViewTimer)
  208. return;function scrollIntoView()
  209. {delete this._scrollIntoViewTimer;this.messagesElement.scrollTop=this.messagesElement.scrollHeight;}
  210. this._scrollIntoViewTimer=setTimeout(scrollIntoView.bind(this),20);},_immediatelyScrollIntoView:function()
  211. {this.promptElement.scrollIntoView(true);this._cancelScheduledScrollIntoView();},_cancelScheduledScrollIntoView:function()
  212. {if(!this._isScrollIntoViewScheduled())
  213. return;clearTimeout(this._scrollIntoViewTimer);delete this._scrollIntoViewTimer;},_updateFilterStatus:function(count){count=(typeof count==="undefined")?(this._consoleMessages.length-this._visibleViewMessages.length):count;this._filterStatusTextElement.textContent=WebInspector.UIString(count==1?"%d message is hidden by filters.":"%d messages are hidden by filters.",count);this._filterStatusMessageElement.style.display=count?"":"none";},_consoleMessageAdded:function(target,message)
  214. {if(this._urlToMessageCount[message.url])
  215. this._urlToMessageCount[message.url]++;else
  216. this._urlToMessageCount[message.url]=1;var previousMessage=this._consoleMessages.peekLast();if(previousMessage&&!message.isGroupMessage()&&message.isEqual(previousMessage)){previousMessage.timestamp=message.timestamp;this._messageToViewMessage.get(previousMessage).incrementRepeatCount();return;}
  217. this._consoleMessages.push(message);var viewMessage=this._createViewMessage(target,message);if(this._filter.shouldBeVisible(viewMessage))
  218. this._showConsoleMessage(viewMessage);else
  219. this._updateFilterStatus();},_onConsoleMessageAdded:function(target,event)
  220. {var message=(event.data);this._consoleMessageAdded(target,message);},_showConsoleMessage:function(viewMessage)
  221. {var message=viewMessage.consoleMessage();if(!this._isScrollIntoViewScheduled()&&((viewMessage instanceof WebInspector.ConsoleCommandResult)||this.messagesElement.isScrolledToBottom()))
  222. this._scheduleScrollIntoView();this._visibleViewMessages.push(viewMessage);if(message.type===WebInspector.ConsoleMessage.MessageType.EndGroup){var parentGroup=this.currentGroup.parentGroup;if(parentGroup)
  223. this.currentGroup=parentGroup;}else{if(message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){var group=new WebInspector.ConsoleGroup(this.currentGroup);this.currentGroup.messagesElement.appendChild(group.element);this.currentGroup=group;viewMessage.group=group;}
  224. this.currentGroup.addMessage(viewMessage);}
  225. if(this._searchRegex&&viewMessage.matchesRegex(this._searchRegex)){this._searchResults.push(viewMessage);this._searchableView.updateSearchMatchesCount(this._searchResults.length);}},_createViewMessage:function(target,message)
  226. {var viewMessage=this._messageToViewMessage.get(message);if(viewMessage)
  227. return viewMessage;if(message.type===WebInspector.ConsoleMessage.MessageType.Command)
  228. viewMessage=new WebInspector.ConsoleCommand(target,message);else
  229. viewMessage=new WebInspector.ConsoleViewMessage(target,message,this._linkifier);this._messageToViewMessage.put(message,viewMessage);return viewMessage;},_consoleCleared:function()
  230. {this._scrolledToBottom=true;this._clearCurrentSearchResultHighlight();this._updateFilterStatus(0);for(var i=0;i<this._visibleViewMessages.length;++i)
  231. this._visibleViewMessages[i].willHide();this._visibleViewMessages=[];this._searchResults=[];this._messageToViewMessage.clear();this._consoleMessages=[];if(this._searchRegex)
  232. this._searchableView.updateSearchMatchesCount(0);this.currentGroup=this.topGroup;this.topGroup.messagesElement.removeChildren();this._linkifier.reset();},_handleContextMenuEvent:function(event)
  233. {if(event.target.enclosingNodeOrSelfWithNodeName("a"))
  234. return;var contextMenu=new WebInspector.ContextMenu(event);function monitoringXHRItemAction()
  235. {WebInspector.settings.monitoringXHREnabled.set(!WebInspector.settings.monitoringXHREnabled.get());}
  236. contextMenu.appendCheckboxItem(WebInspector.UIString("Log XMLHttpRequests"),monitoringXHRItemAction,WebInspector.settings.monitoringXHREnabled.get());function preserveLogItemAction()
  237. {WebInspector.settings.preserveConsoleLog.set(!WebInspector.settings.preserveConsoleLog.get());}
  238. contextMenu.appendCheckboxItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Preserve log upon navigation":"Preserve Log upon Navigation"),preserveLogItemAction,WebInspector.settings.preserveConsoleLog.get());var sourceElement=event.target.enclosingNodeOrSelfWithClass("console-message");var filterSubMenu=contextMenu.appendSubMenuItem(WebInspector.UIString("Filter"));if(sourceElement&&sourceElement.message.url){var menuTitle=WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Hide messages from %s":"Hide Messages from %s",new WebInspector.ParsedURL(sourceElement.message.url).displayName);filterSubMenu.appendItem(menuTitle,this._filter.addMessageURLFilter.bind(this._filter,sourceElement.message.url));}
  239. filterSubMenu.appendSeparator();var unhideAll=filterSubMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Unhide all":"Unhide All"),this._filter.removeMessageURLFilter.bind(this._filter));filterSubMenu.appendSeparator();var hasFilters=false;for(var url in this._filter.messageURLFilters){filterSubMenu.appendCheckboxItem(String.sprintf("%s (%d)",new WebInspector.ParsedURL(url).displayName,this._urlToMessageCount[url]),this._filter.removeMessageURLFilter.bind(this._filter,url),true);hasFilters=true;}
  240. filterSubMenu.setEnabled(hasFilters||(sourceElement&&sourceElement.message.url));unhideAll.setEnabled(hasFilters);contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString(WebInspector.useLowerCaseMenuTitles()?"Clear console":"Clear Console"),this._requestClearMessages.bind(this));var request=(sourceElement&&sourceElement.message)?sourceElement.message.request:null;if(request&&request.type===WebInspector.resourceTypes.XHR){contextMenu.appendSeparator();contextMenu.appendItem(WebInspector.UIString("Replay XHR"),NetworkAgent.replayXHR.bind(null,request.requestId));}
  241. contextMenu.show();},_updateMessageList:function()
  242. {var group=this.topGroup;var visibleMessageIndex=0;var newVisibleMessages=[];if(this._searchRegex)
  243. this._searchResults=[];var anchor=null;for(var i=0;i<this._consoleMessages.length;++i){var sourceMessage=this._consoleMessages[i];var sourceViewMessage=this._messageToViewMessage.get(sourceMessage);var visibleViewMessage=this._visibleViewMessages[visibleMessageIndex];if(visibleViewMessage===sourceViewMessage){if(this._filter.shouldBeVisible(sourceViewMessage)){newVisibleMessages.push(this._visibleViewMessages[visibleMessageIndex]);if(this._searchRegex&&sourceViewMessage.matchesRegex(this._searchRegex))
  244. this._searchResults.push(sourceViewMessage);if(sourceMessage.type===WebInspector.ConsoleMessage.MessageType.EndGroup){anchor=group.element;group=group.parentGroup||group;}else if(sourceMessage.type===WebInspector.ConsoleMessage.MessageType.StartGroup||sourceMessage.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){group=sourceViewMessage.group;anchor=group.messagesElement.firstChild;}else
  245. anchor=sourceViewMessage.toMessageElement();}else{sourceViewMessage.willHide();sourceViewMessage.toMessageElement().remove();}
  246. ++visibleMessageIndex;}else{if(this._filter.shouldBeVisible(sourceViewMessage)){if(this._searchRegex&&sourceViewMessage.matchesRegex(this._searchRegex))
  247. this._searchResults.push(sourceViewMessage);group.addMessage(sourceViewMessage,anchor?anchor.nextSibling:group.messagesElement.firstChild);newVisibleMessages.push(sourceViewMessage);anchor=sourceViewMessage.toMessageElement();}}}
  248. if(this._searchRegex)
  249. this._searchableView.updateSearchMatchesCount(this._searchResults.length);this._visibleViewMessages=newVisibleMessages;this._updateFilterStatus();},_monitoringXHREnabledSettingChanged:function(event)
  250. {ConsoleAgent.setMonitoringXHREnabled(event.data);},_messagesClicked:function()
  251. {if(!this.prompt.isCaretInsidePrompt()&&window.getSelection().isCollapsed)
  252. this.prompt.moveCaretToEndOfPrompt();},_registerShortcuts:function()
  253. {this._shortcuts={};var shortcut=WebInspector.KeyboardShortcut;var section=WebInspector.shortcutsScreen.section(WebInspector.UIString("Console"));var shortcutL=shortcut.makeDescriptor("l",WebInspector.KeyboardShortcut.Modifiers.Ctrl);this._shortcuts[shortcutL.key]=this._requestClearMessages.bind(this);var keys=[shortcutL];if(WebInspector.isMac()){var shortcutK=shortcut.makeDescriptor("k",WebInspector.KeyboardShortcut.Modifiers.Meta);this._shortcuts[shortcutK.key]=this._requestClearMessages.bind(this);keys.unshift(shortcutK);}
  254. section.addAlternateKeys(keys,WebInspector.UIString("Clear console"));section.addKey(shortcut.makeDescriptor(shortcut.Keys.Tab),WebInspector.UIString("Autocomplete common prefix"));section.addKey(shortcut.makeDescriptor(shortcut.Keys.Right),WebInspector.UIString("Accept suggestion"));keys=[shortcut.makeDescriptor(shortcut.Keys.Down),shortcut.makeDescriptor(shortcut.Keys.Up)];section.addRelatedKeys(keys,WebInspector.UIString("Next/previous line"));if(WebInspector.isMac()){keys=[shortcut.makeDescriptor("N",shortcut.Modifiers.Alt),shortcut.makeDescriptor("P",shortcut.Modifiers.Alt)];section.addRelatedKeys(keys,WebInspector.UIString("Next/previous command"));}
  255. section.addKey(shortcut.makeDescriptor(shortcut.Keys.Enter),WebInspector.UIString("Execute command"));},_requestClearMessages:function()
  256. {WebInspector.console.requestClearMessages();},_promptKeyDown:function(event)
  257. {if(isEnterKey(event)){this._enterKeyPressed(event);return;}
  258. var shortcut=WebInspector.KeyboardShortcut.makeKeyFromEvent(event);var handler=this._shortcuts[shortcut];if(handler){handler();event.preventDefault();}},_enterKeyPressed:function(event)
  259. {if(event.altKey||event.ctrlKey||event.shiftKey)
  260. return;event.consume(true);this.prompt.clearAutoComplete(true);var str=this.prompt.text;if(!str.length)
  261. return;this._appendCommand(str,true);},_printResult:function(result,wasThrown,originatingCommand)
  262. {if(!result)
  263. return;var target=result.target();function addMessage(url,lineNumber,columnNumber)
  264. {var resultMessage=new WebInspector.ConsoleCommandResult((result),wasThrown,originatingCommand,this._linkifier,url,lineNumber,columnNumber);this._messageToViewMessage.put(resultMessage.consoleMessage(),resultMessage);target.consoleModel.addMessage(resultMessage.consoleMessage());}
  265. if(result.type!=="function"){addMessage.call(this);return;}
  266. target.debuggerAgent().getFunctionDetails(result.objectId,didGetDetails.bind(this));function didGetDetails(error,response)
  267. {if(error){console.error(error);addMessage.call(this);return;}
  268. var url;var lineNumber;var columnNumber;var script=WebInspector.debuggerModel.scriptForId(response.location.scriptId);if(script&&script.sourceURL){url=script.sourceURL;lineNumber=response.location.lineNumber+1;columnNumber=response.location.columnNumber+1;}
  269. addMessage.call(this,url,lineNumber,columnNumber);}},_appendCommand:function(text,useCommandLineAPI)
  270. {this.prompt.text="";this._currentTarget().consoleModel.evaluateCommand(text,useCommandLineAPI);},_commandEvaluated:function(event)
  271. {var data=(event.data);this.prompt.pushHistoryItem(data.text);WebInspector.settings.consoleHistory.set(this.prompt.historyData.slice(-30));this._printResult(data.result,data.wasThrown,(this._messageToViewMessage.get(data.commandMessage)));},elementsToRestoreScrollPositionsFor:function()
  272. {return[this.messagesElement];},searchCanceled:function()
  273. {this._clearCurrentSearchResultHighlight();delete this._searchResults;delete this._searchRegex;},performSearch:function(query,shouldJump)
  274. {this.searchCanceled();this._searchableView.updateSearchMatchesCount(0);this._searchRegex=createPlainTextSearchRegex(query,"gi");this._searchResults=[];for(var i=0;i<this._visibleViewMessages.length;i++){if(this._visibleViewMessages[i].matchesRegex(this._searchRegex))
  275. this._searchResults.push(this._visibleViewMessages[i]);}
  276. this._searchableView.updateSearchMatchesCount(this._searchResults.length);this._currentSearchResultIndex=-1;if(shouldJump&&this._searchResults.length)
  277. this._jumpToSearchResult(0);},jumpToNextSearchResult:function()
  278. {if(!this._searchResults||!this._searchResults.length)
  279. return;this._jumpToSearchResult((this._currentSearchResultIndex+1)%this._searchResults.length);},jumpToPreviousSearchResult:function()
  280. {if(!this._searchResults||!this._searchResults.length)
  281. return;var index=this._currentSearchResultIndex-1;if(index===-1)
  282. index=this._searchResults.length-1;this._jumpToSearchResult(index);},_clearCurrentSearchResultHighlight:function()
  283. {if(!this._searchResults)
  284. return;var highlightedViewMessage=this._searchResults[this._currentSearchResultIndex];if(highlightedViewMessage)
  285. highlightedViewMessage.clearHighlight();this._currentSearchResultIndex=-1;},_jumpToSearchResult:function(index)
  286. {this._clearCurrentSearchResultHighlight();this._currentSearchResultIndex=index;this._searchableView.updateCurrentMatchIndex(this._currentSearchResultIndex);this._searchResults[index].highlightSearchResults(this._searchRegex);},__proto__:WebInspector.VBox.prototype}
  287. WebInspector.ConsoleViewFilter=function(view)
  288. {this._view=view;this._messageURLFilters=WebInspector.settings.messageURLFilters.get();this._filterChanged=this.dispatchEventToListeners.bind(this,WebInspector.ConsoleViewFilter.Events.FilterChanged);};WebInspector.ConsoleViewFilter.Events={FilterChanged:"FilterChanged"};WebInspector.ConsoleViewFilter.prototype={addFilters:function(filterBar)
  289. {this._textFilterUI=new WebInspector.TextFilterUI(true);this._textFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._textFilterChanged,this);filterBar.addFilter(this._textFilterUI);var levels=[{name:"error",label:WebInspector.UIString("Errors")},{name:"warning",label:WebInspector.UIString("Warnings")},{name:"info",label:WebInspector.UIString("Info")},{name:"log",label:WebInspector.UIString("Logs")},{name:"debug",label:WebInspector.UIString("Debug")}];this._levelFilterUI=new WebInspector.NamedBitSetFilterUI(levels,WebInspector.settings.messageLevelFilters);this._levelFilterUI.addEventListener(WebInspector.FilterUI.Events.FilterChanged,this._filterChanged,this);filterBar.addFilter(this._levelFilterUI);},_textFilterChanged:function(event)
  290. {this._filterRegex=this._textFilterUI.regex();this._filterChanged();},addMessageURLFilter:function(url)
  291. {this._messageURLFilters[url]=true;WebInspector.settings.messageURLFilters.set(this._messageURLFilters);this._filterChanged();},removeMessageURLFilter:function(url)
  292. {if(!url)
  293. this._messageURLFilters={};else
  294. delete this._messageURLFilters[url];WebInspector.settings.messageURLFilters.set(this._messageURLFilters);this._filterChanged();},get messageURLFilters()
  295. {return this._messageURLFilters;},shouldBeVisible:function(viewMessage)
  296. {if(!viewMessage)
  297. return false;var message=viewMessage.consoleMessage();if((message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed||message.type===WebInspector.ConsoleMessage.MessageType.EndGroup))
  298. return true;if(message.type===WebInspector.ConsoleMessage.MessageType.Result||message.type===WebInspector.ConsoleMessage.MessageType.Command)
  299. return true;if(message.url&&this._messageURLFilters[message.url])
  300. return false;if(message.level&&!this._levelFilterUI.accept(message.level))
  301. return false;if(this._filterRegex){this._filterRegex.lastIndex=0;if(!viewMessage.matchesRegex(this._filterRegex))
  302. return false;}
  303. return true;},reset:function()
  304. {this._messageURLFilters={};WebInspector.settings.messageURLFilters.set(this._messageURLFilters);WebInspector.settings.messageLevelFilters.set({});this._filterChanged();},__proto__:WebInspector.Object.prototype};WebInspector.ConsoleCommand=function(target,message)
  305. {WebInspector.ConsoleViewMessage.call(this,target,message,null);}
  306. WebInspector.ConsoleCommand.prototype={wasShown:function()
  307. {},willHide:function()
  308. {},clearHighlight:function()
  309. {var highlightedMessage=this._formattedCommand;delete this._formattedCommand;this._formatCommand();this._element.replaceChild(this._formattedCommand,highlightedMessage);},highlightSearchResults:function(regexObject)
  310. {regexObject.lastIndex=0;var match=regexObject.exec(this.text);var matchRanges=[];while(match){matchRanges.push(new WebInspector.SourceRange(match.index,match[0].length));match=regexObject.exec(this.text);}
  311. WebInspector.highlightSearchResults(this._formattedCommand,matchRanges);this._element.scrollIntoViewIfNeeded();},matchesRegex:function(regexObject)
  312. {regexObject.lastIndex=0;return regexObject.test(this.text);},toMessageElement:function()
  313. {if(!this._element){this._element=document.createElement("div");this._element.command=this;this._element.className="console-user-command";this._formatCommand();this._element.appendChild(this._formattedCommand);}
  314. return this._element;},_formatCommand:function()
  315. {this._formattedCommand=document.createElement("span");this._formattedCommand.className="console-message-text source-code";this._formattedCommand.textContent=this.text;},__proto__:WebInspector.ConsoleViewMessage.prototype}
  316. WebInspector.ConsoleCommandResult=function(result,wasThrown,originatingCommand,linkifier,url,lineNumber,columnNumber)
  317. {this.originatingCommand=originatingCommand;var level=wasThrown?WebInspector.ConsoleMessage.MessageLevel.Error:WebInspector.ConsoleMessage.MessageLevel.Log;var message=new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.JS,level,"",WebInspector.ConsoleMessage.MessageType.Result,url,lineNumber,columnNumber,undefined,[result]);WebInspector.ConsoleViewMessage.call(this,result.target(),message,linkifier);}
  318. WebInspector.ConsoleCommandResult.prototype={useArrayPreviewInFormatter:function(array)
  319. {return false;},toMessageElement:function()
  320. {var element=WebInspector.ConsoleViewMessage.prototype.toMessageElement.call(this);element.classList.add("console-user-command-result");return element;},__proto__:WebInspector.ConsoleViewMessage.prototype}
  321. WebInspector.ConsoleGroup=function(parentGroup)
  322. {this.parentGroup=parentGroup;var element=document.createElement("div");element.className="console-group";element.group=this;this.element=element;if(parentGroup){var bracketElement=document.createElement("div");bracketElement.className="console-group-bracket";element.appendChild(bracketElement);}
  323. var messagesElement=document.createElement("div");messagesElement.className="console-group-messages";element.appendChild(messagesElement);this.messagesElement=messagesElement;}
  324. WebInspector.ConsoleGroup.prototype={addMessage:function(viewMessage,node)
  325. {var message=viewMessage.consoleMessage();var element=viewMessage.toMessageElement();if(message.type===WebInspector.ConsoleMessage.MessageType.StartGroup||message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed){this.messagesElement.parentNode.insertBefore(element,this.messagesElement);element.addEventListener("click",this._titleClicked.bind(this),false);var groupElement=element.enclosingNodeOrSelfWithClass("console-group");if(groupElement&&message.type===WebInspector.ConsoleMessage.MessageType.StartGroupCollapsed)
  326. groupElement.classList.add("collapsed");}else{this.messagesElement.insertBefore(element,node||null);viewMessage.wasShown();}
  327. if(element.previousSibling&&viewMessage.originatingCommand&&element.previousSibling.command===viewMessage.originatingCommand)
  328. element.previousSibling.classList.add("console-adjacent-user-command-result");},_titleClicked:function(event)
  329. {var groupTitleElement=event.target.enclosingNodeOrSelfWithClass("console-group-title");if(groupTitleElement){var groupElement=groupTitleElement.enclosingNodeOrSelfWithClass("console-group");if(groupElement&&!groupElement.classList.toggle("collapsed")){if(groupElement.group){groupElement.group.wasShown();}}
  330. groupTitleElement.scrollIntoViewIfNeeded(true);}
  331. event.consume(true);},wasShown:function()
  332. {if(this.element.classList.contains("collapsed"))
  333. return;var node=this.messagesElement.firstChild;while(node){if(node.classList.contains("console-message")&&node.message)
  334. node.message.wasShown();if(node.classList.contains("console-group")&&node.group)
  335. node.group.wasShown();node=node.nextSibling;}}}
  336. WebInspector.ConsoleView.ShowConsoleActionDelegate=function()
  337. {}
  338. WebInspector.ConsoleView.ShowConsoleActionDelegate.prototype={handleAction:function()
  339. {WebInspector.console.show();return true;}};WebInspector.ConsolePanel=function()
  340. {WebInspector.Panel.call(this,"console");this._view=WebInspector.ConsolePanel._view();}
  341. WebInspector.ConsolePanel._view=function()
  342. {if(!WebInspector.ConsolePanel._consoleView)
  343. WebInspector.ConsolePanel._consoleView=new WebInspector.ConsoleView(!Capabilities.isMainFrontend);return WebInspector.ConsolePanel._consoleView;}
  344. WebInspector.ConsolePanel.prototype={defaultFocusedElement:function()
  345. {return this._view.defaultFocusedElement();},wasShown:function()
  346. {WebInspector.Panel.prototype.wasShown.call(this);this._view.show(this.element);},willHide:function()
  347. {WebInspector.Panel.prototype.willHide.call(this);if(WebInspector.ConsolePanel.WrapperView._instance)
  348. WebInspector.ConsolePanel.WrapperView._instance._showViewInWrapper();},__proto__:WebInspector.Panel.prototype}
  349. WebInspector.ConsolePanel.WrapperView=function()
  350. {WebInspector.VBox.call(this);this.element.classList.add("console-view-wrapper");WebInspector.ConsolePanel.WrapperView._instance=this;this._view=WebInspector.ConsolePanel._view();this.wasShown();}
  351. WebInspector.ConsolePanel.WrapperView.prototype={wasShown:function()
  352. {if(!WebInspector.inspectorView.currentPanel()||WebInspector.inspectorView.currentPanel().name!=="console")
  353. this._showViewInWrapper();},defaultFocusedElement:function()
  354. {return this._view.defaultFocusedElement();},focus:function()
  355. {this._view.focus();},_showViewInWrapper:function()
  356. {this._view.show(this.element);},__proto__:WebInspector.VBox.prototype}
  357. WebInspector.ConsolePanel.ConsoleRevealer=function()
  358. {}
  359. WebInspector.ConsolePanel.ConsoleRevealer.prototype={reveal:function(object)
  360. {if(!(object instanceof WebInspector.ConsoleModel))
  361. return;var consoleView=WebInspector.ConsolePanel._view();if(consoleView.isShowing()){consoleView.focus();return;}
  362. WebInspector.inspectorView.showViewInDrawer("console");}}